<?php
//快速排序
$arr = [ 1000 , 43 , 54 , 62 , 21 , 66 , 32 , 78 , 36 , 76 , 39 , 10000 , 8222 , 111 , 8797897 , 347824897328 , 27772 , 18723827 , 773 , 288288 ];
print_r(quickSort($arr));
function quickSort ($arr) {
	$length = count ($arr);
	if ( $length <= 1 ) {
		return $arr;
	}
	//选择第一个元素作为基准（中间数）
	$base_num = $arr[0];
	$left_array  = [];  //小于中间数
	$right_array = [];  //大于中间数
	for ( $i = 1; $i < $length; $i++ ) {
		if ( $base_num > $arr[ $i ] ) {
			//放入左边数组
			$left_array[] = $arr[ $i ];
		} else {
			//放入右边
			$right_array[] = $arr[ $i ];
		}
	}
	//将左右两个数组再次递归调用，进行运算
	$left_array  = quickSort ($left_array);
	$right_array = quickSort ($right_array);

	//合并
	return array_merge ($left_array , array( $base_num ) , $right_array);
}